package com.zkh.myutils.bean;

/**
 * 类型转换器，通过管理器管理
 * @author zkh
 */
public abstract class TypeConverter<T> {
	/**
	 * 目标类型
	 */
	private final Class<T> target;
	
	/**
	 * 构造器
	 * @param target 要转换的目标类型
	 */
	public TypeConverter(Class<T> target) {
		this.target = target;
	}
	
	/**
	 * 转换方法。对象值转目标类型值（通常转为String）
	 * @param value 待转换的值
	 */
	public abstract Object convertToTarget(T value);
	
	/**
	 * 转换方法。比如JSON串值转对象值
	 * @param val 待转换的值
	 */
	public abstract T convertToProperty(Object val);
	
	/**
	 * 获取类型
	 */
	public Class<?> getTargetClass(){
		return target;
	}
}
